1. Field
This disclosure relates to symmetric digital filtering, more particularly to a method for determining optimal performance of two-dimensional symmetric filtering.
2. Background
The use of digital image data is prevalent. Printing applications, such as making copies, receiving faxes, printing documents, including all kinds of text, graphics and photographs, typically use digital image data. An original image is scanned or image data is provided from a computer, as in computer generated documents. The resulting data is typically a number of data elements, each data element representing a picture element (pixel) of the original image.
The size of the data element depends upon the resolution of the system. A typical printing resolution is 600 dots per inch, where each dot is the equivalent of a pixel. Digital video may have 24 bits per pixel, 8 bits each in red, green and blue. Regardless of how the data is generated, or the resolution in which it is stored, the image data is now in a format that can be manipulated to enhance the quality of the resulting image. The resulting image can be created as a printed image or as a displayed image.
The manipulation of the data can happen through one of several methods. One such method is to apply a filter to the data. Filtering in this instance normally means altering the data values by multiplying or adding some predetermined value to each data element in an image, where the data elements typically correspond to the pixels of the final image. For example, digital image data destined for print applications may have a filter known as a blue noise mask applied to it. The blue noise mask values serve to disrupt any regional patterns in the data that can cause undesirable artifacts in the final image. Two-dimensional digital filtering is used for many other imaging applications such as image enhancement, scaling, and segmentation to name a few but not limited by these applications only.
Image data typically has a native two-dimensional format, having both horizontal and vertical dimensions like the image that data represents. Filtering can be applied in one-dimension, the results stored, and then in the other dimension. This two-step process can be relatively slow and impractical for high-speed printing or real-time display. An alternate approach applies two-dimensional filters, speeding up the process. However, two-dimensional filters require extra hardware to allow for as much parallel processing as possible to take advantage of working in two dimensions simultaneously. A need exists for a technique that provides an optimal filter design for both clock cycles and the amount of hardware required.